using System;
using System.ComponentModel;
using System.Collections.Specialized;
using Vulcan.Utility.ComponentModel;
using AstFramework;
using AstFramework.Engine.Binding;
using AstFramework.Model;
using AstFramework.Markup;
using VulcanEngine.AstFramework;
using Vulcan.Utility.Collections;
using System.Reflection;
using System.Collections.Generic;
using Vulcan.Utility.Xml;
using Vulcan.Utility.Common;
using Vulcan.Utility.Markup;

namespace VulcanEngine.IR.Ast.Task
{
	public enum ProtectionLevel
	{
		[VulcanDescription(@"")]
		DontSaveSensitive,
		[VulcanDescription(@"")]
		EncryptSensitiveWithPassword,
		[VulcanDescription(@"")]
		EncryptSensitiveWithUserKey,
		[VulcanDescription(@"")]
		EncryptAllWithPassword,
		[VulcanDescription(@"")]
		EncryptAllWithUserKey,
		[VulcanDescription(@"")]
		ServerStorage
	}
		
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1501:AvoidExcessiveInheritance", Justification = "Consequence of AstNode design in AstDesigner.  Since this is an autogenerated hierarchy, it will be manageable.")]
    public partial class AstPackageNode : IEmittableAstNode
    {
        public AstPackageNode(IFrameworkItem parentAstNode) : base(parentAstNode)
        {
            InitializeAstNode();
        }

        #region IEmittableAstNode Members

		[VulcanCategory("Optional")]
        [VulcanDefaultValue(VulcanEngine.IR.Ast.Task.ProtectionLevel.DontSaveSensitive)]
        [Browsable(true)]
        [AstXNameBinding("ProtectionLevel", ChildType.Attribute, DefaultValue = "DontSaveSensitive")]
        public VulcanEngine.IR.Ast.Task.ProtectionLevel ProtectionLevel
        {
            get; set;
        }
		
		[VulcanCategory("Optional")]
        [Browsable(true)]
        [AstXNameBinding("PackagePassword", ChildType.Attribute)]
        public string PackagePassword
        {
            get; set;
        }
		
        public bool Emit
        {
            get; set;
        }

        #endregion
    }
}
